package com.ipartek.formacion.pruebas;

public class Exceptions {

	public static void main(String[] args) {

		// Codigo vigilado
		try {

			System.out.println("Entramos en " + Class.class.getName());
			// Descomentar para NullPointerExceptionj
			// String cadena = null;
			// cadena.length();

			// Descomentar para ArithmeticException
			// int i = 100 / 0;

			// Descomrentar para ArrayIndexOutOfBoundsException
			String[] nombres = Dado.nombres;
			System.out.println("Primer alumnos" + nombres[0]);
			System.out.println("Ultimo alumnos" + nombres[Dado.NUM_ALUMNOS]);

			System.out.println("Fallara " + nombres[Dado.NUM_ALUMNOS + 1]);

			System.out.println("Terminamos con el codigo vigilado");

			// gestion de errores

		} catch (ArrayIndexOutOfBoundsException e) {
			System.out
					.println("Gestion indice fuera del array - ArrayIndexOutOfBoundsException");
			e.printStackTrace();
		} catch (ArithmeticException e) {
			System.out.println("Gestion Aritmetica - ArithmeticException");
			e.printStackTrace();
		} catch (NullPointerException e) {
			System.out.println("Gestion de NULL general NullPointerException");
			e.printStackTrace();
		} catch (Exception e) {
			System.out.println("Gestion de error general Exception");
			// muestra la traza de la excepcion
			e.printStackTrace();
		} finally {
			System.out.println("Se ejecuta siempre falle o no falle");
		}

	}
}
